// src/utils/request.js
import axios from 'axios'

const service = axios.create({
  baseURL: '/api',
  timeout: 5000
})

// 请求拦截器
service.interceptors.request.use(config => {
  // 示例：添加 token 到 header
  // const token = localStorage.getItem('token')
  // if (token) {
  //   config.headers['Authorization'] = 'Bearer ' + token
  // }

  // 自动识别 content-type 并编码
  if (config.method === 'post' && config.headers['Content-Type'] === 'application/x-www-form-urlencoded') {
    const params = new URLSearchParams()
    for (const key in config.data) {
      if (Object.hasOwn(config.data, key)) {
        params.append(key, config.data[key])
      }
    }
    config.data = params.toString()
  }

  return config
})

// 响应拦截器
service.interceptors.response.use(response => {
  return response.data
}, async error => {
  // 错误处理、重试、提示等
  return Promise.reject(error)
})

export default service